Skip to content

Conversation

@YangHJ2415
Copy link
Collaborator

실제 API 호출을 테스트 하는 테스트 코드 입니다.

현재 서버가 닫혀있기 때문에, API 서버가 닫혀있는 경우의 테스트를 추가하였습니다.

이후 호출은 정상적이지만 값이 비어있는 경우 등의 케이스도 추가할 예정입니다.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 AI 리뷰 - src/test/kotlin/com/back/koreaTravelGuide/domain/ai/tour/client/TourApiClientTest.kt

🟢 좋은점:

  • Kotlin 최적화 측면에서 TourSearchParams data class를 활용해 매개변수를 명확하고 안전하게 구성한 점이 우수합니다. null safety를 고려한 firstOrNull() 사용과 isNotEmpty()/isEmpty() 검증이 적절하며, when 표현식이나 확장 함수는 필요에 따라 최소화되어 코드가 간결합니다.
  • ktlint 규칙 준수: 네이밍 컨벤션(예: fetchTourInfoTest, fetchTourInfoEmptyTest)이 일관되며, 들여쓰기와 포맷팅이 깔끔합니다. 불필요한 import가 제거되어 코드가 슬림해졌습니다.
  • 실제 API 통합 테스트로 전환하여 모킹 의존성을 줄인 점이 현실적입니다. Assumptions.assumeTrue를 사용해 API 장애 시나리오를 유연하게 처리하며, 테스트의 안정성을 높였습니다.

🟡 개선사항:

  • 글로벌 익셉션 처리와 ApiResponse 사용은 컨트롤러/서비스 레이어 관련 규칙으로, 이 테스트 파일(클라이언트 통합 테스트)에는 직접 적용되지 않습니다. 다만, 실제 API 호출 시 발생할 수 있는 예외(예: 네트워크 오류, 인증 실패)를 테스트에 추가로 검증하면 더 robust해질 수 있습니다. 예를 들어, serviceKey가 유효하지 않을 때의 에러 핸들링을 별도 테스트로 분리하세요.
  • Kotlin 최적화: println 문은 테스트 로그로 유용하지만, SLF4J나 TestLogger 같은 로깅 프레임워크로 대체하면 프로덕션 코드와의 일관성을 유지할 수 있습니다. 또한, params 생성을 factory 메서드나 확장 함수로 추출하면 재사용성이 높아집니다.
  • ktlint: 테스트 메서드 이름이 영어로 일관되지만, 한국어 주석(예: "// 장애가 아닐 경우...")이 섞여 있어 전체적으로 영어로 통일하면 더 나을 수 있습니다. 테스트 데이터(areaCode="1", sigunguCode="1")를 상수나 데이터 클래스에 정의해 하드코딩을 줄이세요.
  • 테스트 안정성: 실제 API 호출에 의

@YangHJ2415 YangHJ2415 merged commit 0a0a652 into main Sep 29, 2025
1 check passed
@YangHJ2415 YangHJ2415 changed the title Client 테스트 feat(be) : Client 테스트 Sep 29, 2025
@YangHJ2415 YangHJ2415 deleted the feat/be/43 branch September 29, 2025 00:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants